package com.xbongbong.formula.qlexpress.operator.date;

import com.ql.util.express.Operator;
import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.util.DateTimeUtil;
import com.xbongbong.pro.enums.ErrorCodeEnum;
import com.xbongbong.pro.enums.errorcodes.BusinessRuleErrorCodeEnum;

import java.util.Objects;

/**
 * 返回日期date的年份
 * @author 吴峰
 * @version v1.0
 * @date 2019/8/5 10:47
 * @since v1.0
 */
public class OperatorSystemTime extends Operator {


    public OperatorSystemTime(String name){
        this.name = name;
    }

    public OperatorSystemTime(String aliasName, String aName, String errorInfo){
        this.aliasName = aliasName;
        this.name = aName;
        this.errorInfo = errorInfo;
    }


    /**
     * SYSTIME()
     * 返回当前服务器时间。
     * 即使客户端的时间被人为调整了，SYSTIME函数不受影响，获取的仍然是服务器时间。例如签到、打卡等场景下，可避免调整时间作弊的情况。
     * 语法：SYSTIME()
     * 说明：返回服务器时间，精确到秒
     * @return 时间戳
     * @throws Exception
     */
    @Override
    public Object executeInner(Object[] list) throws XbbException {
        if (Objects.isNull(list)) {
            throw new XbbException(BusinessRuleErrorCodeEnum.API_ERROR_261007);
        }
        return DateTimeUtil.getInt();
    }

}
